package net.slique.sf5.model.silverware;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@SuppressWarnings("serial")
public class ModelInformation implements Serializable {
	
	/**
	 * dCtor. 
	 */
	public ModelInformation() {
	}
	
	/**
	 * Model name.
	 */
	private String name;
	
	/**
	 * Model description.
	 */
	private String description;
	
	/**
	 * Model implementation language.
	 */
	private String language;
	
	/**
	 * Model version.
	 */
	private String version;
	
	/**
	 * Model provider. 
	 */
	private String provider;
	
	/**
	 * Metadata for the model. 
	 */
	private List<ModelMeta> metadata = new ArrayList<ModelMeta>();
	
	/**
	 * Parameters for the model.
	 */
	private List<ModelMeta> parameters = new ArrayList<ModelMeta>();
	
	/**
	 * List of equations used in this model formatted as TeX strings.
	 */
	private List<String> equations = new ArrayList<String>();

	/**
	 * @return the metadata
	 */
	public List<ModelMeta> getMetadata() {
		return metadata;
	}

	/**
	 * @param metadata the metadata to set
	 */
	public void setMetadata(List<ModelMeta> metadata) {
		this.metadata = metadata;
	}

	/**
	 * @return the parameters
	 */
	public List<ModelMeta> getParameters() {
		return parameters;
	}

	/**
	 * @param parameters the parameters to set
	 */
	public void setParameters(List<ModelMeta> parameters) {
		this.parameters = parameters;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public ModelInformation setName(String name) {
		this.name = name;
		return this;
	}

	/**
	 * @return the description
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * @param description the description to set
	 */
	public ModelInformation setDescription(String description) {
		this.description = description;
		return this;
	}

	/**
	 * @return the language
	 */
	public String getLanguage() {
		return language;
	}

	/**
	 * @param language the language to set
	 */
	public ModelInformation setLanguage(String language) {
		this.language = language;
		return this;
	}

	/**
	 * @return the version
	 */
	public String getVersion() {
		return version;
	}

	/**
	 * @param version the version to set
	 */
	public ModelInformation setVersion(String version) {
		this.version = version;
		return this;
	}

	/**
	 * @return the provider
	 */
	public String getProvider() {
		return provider;
	}

	/**
	 * @param provider the provider to set
	 * @return 
	 */
	public ModelInformation setProvider(String provider) {
		this.provider = provider;
		return this;
	}

	/**
	 * @return the equations
	 */
	public List<String> getEquations() {
		return equations;
	}

	/**
	 * @param equations the equations to set
	 * @return 
	 */
	public ModelInformation setEquations(List<String> equations) {
		this.equations = equations;
		return this;
	}
}
